package com.yoshino.singleton.type1;

import lombok.extern.slf4j.Slf4j;

/**
 * @author yoshino
 **/
@Slf4j
public class SingletonTest01 {
    public static void main(String[] args) {
        // 测试
        Singleton instance = Singleton.getInstance();
        Singleton instance2 = Singleton.getInstance();
        // true
        log.info(String.valueOf(instance == instance2));
        instance.fun();
    }
}

// 饿汉式（静态变量）

class Singleton {

    // 1.构造器私有化，外部不能 new

    private Singleton() {

    }
    // 2.本类内部创建对象实例

    private static final Singleton INSTANCE = new Singleton();

    // 3.提供一个公有的静态方法，返回对象实例

    public static Singleton getInstance() {
        return INSTANCE;
    }

    public void fun() {
        return;
    }
}